package com.orange.cetback;

import com.baomidou.mybatisplus.generator.FastAutoGenerator;
import com.baomidou.mybatisplus.generator.config.OutputFile;
import com.baomidou.mybatisplus.generator.engine.FreemarkerTemplateEngine;

import java.util.Collections;

public class CodeGenerator {
    public static void main(String[] args) {
        FastAutoGenerator.create("jdbc:mysql://localhost:3306/cet_db", "root", "1234")
                .globalConfig(builder -> {
                    builder.author("chenenjun") // 设置作者
                            .fileOverride()
                            .outputDir("D:\\Users\\chenenjun\\Desktop\\uniapp\\CET\\CETBack\\src\\main\\java"); // 输出目录
                })

                .packageConfig(builder -> {
                    builder.parent("com.orange.cetback") // 父包名
                            .moduleName("") // 不需要模块名
                            .entity("pojo.entity") // 将Entity类放到pojo目录下
                            .controller("controller.user")
                            .pathInfo(Collections.singletonMap(OutputFile.xml,
                                    "D:\\Users\\chenenjun\\Desktop\\uniapp\\CET\\CETBack\\src\\main\\resources\\mapper")); // XML文件路径
                })
                .strategyConfig(builder -> {
                    builder.addInclude("dictionary") // 需要生成的表名
                            // 启用文件覆盖（新配置位置）
                            .entityBuilder()
                            .enableLombok() // 启用Lombok
                            .serviceBuilder()
                            .formatServiceFileName("%sService") // 服务接口命名
                            .formatServiceImplFileName("%sServiceImpl") // 服务实现类命名
                            .controllerBuilder()
                            .enableRestStyle(); // 生成@RestController
                })
                .templateEngine(new FreemarkerTemplateEngine()) // 使用Freemarker引擎
                .execute();
    }
}
